package com.lifang.framework.beans.factory.config;

import com.lifang.framework.beans.BeansException;
import com.lifang.framework.core.io.Resource;
import com.lifang.framework.core.io.ResourceLoader;

/**
 * bean 资源加载接口定义
 */
public interface BeanDefinitionReader {

    /**
     * 获取默认注册器
     */
    BeanDefinitionRegistry getRegistry();

    /**
     * 获取默认资源加载器
     */
    ResourceLoader getResourceLoader();

    /**
     * 加载指定资源
     */
    void loadBeanDefinitions(Resource resource) throws BeansException;

    /**
     * 加载指定资源集合
     */
    void loadBeanDefinitions(Resource... resources) throws BeansException;

    /**
     * 加载特定资源，如：classpath:spring.xml
     */
    void loadBeanDefinitions(String location) throws BeansException;

    /**
     * 加载特定资源集合，如：classpath:spring.xml
     */
    void loadBeanDefinitions(String... locations) throws BeansException;
}
